<?php
function sys_htmlspecialchart($data, $flags = null) {
    if (is_array($data)) {
        array_map('sys_htmlspecialchart',$data);
    } else {
        if ($flags === null) {
            $data = str_replace(array('&', '"', '<', '>'), array('&amp;', '&quot;', '&lt;', '&gt;'), $data);
            if (strpos($data, '&amp;#') !== false) {
                $data = preg_replace('/&amp;((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $data);
            }
        } else {
            if (!defined('CHARSET') || (strtolower(CHARSET) == 'utf-8')) {
                $charset = 'UTF-8';
            } else {
                $charset = 'ISO-8859-1';
            }
            $data = htmlspecialchars($data, $flags, $charset);
        }
    }
 
    return $data;
}
